1. Field of the Invention
The present invention relates to a wireless transmission device, a wireless transmission method, a wireless communication system, and a program.
2. Description of the Related Art
In recent years, wireless networks, typified by those based on the IEEE 802.11 protocol, are coming into wider use as alternatives to wired networks, because of advantages such as the greater degree of freedom of the devices and the like. The many and varied applications that are used in these wireless networks have created a need for higher transmission rates.
It is in this context that the Block ACK mechanism illustrated in FIG. 11 has been provided in the Medium Access Control (MAC) layer prescribed by the IEEE 802.11e and IEEE 802.11n (draft) protocols. As shown in FIG. 11, eight packets to which sequence numbers 1 to 8 are assigned are transmitted consecutively from a wireless terminal STA1 to a wireless terminal STA2. After the packets are transmitted consecutively, STA1 receives an ACK (a Block ACK) for the plurality of the packets. The Block ACK contains information on the sequence numbers of the packets that were successfully received and the sequence numbers of the packets for which reception failed. As shown in FIG. 11, the Block ACK contains the sequence number of the packet with which the reception started (Start Sequence Number=1) and a bitmap of ones and zeroes that respectively indicate whether reception succeeded or failed.
FIG. 12, on the other hand, shows a case in which one ACK is received per packet. According to the method shown in FIG. 11, the Block ACK is received after the packets are transmitted consecutively, in contrast to the case shown in FIG. 12, in which the ACK is received for each individual packet. This makes it possible to reduce the overhead of transmitting the ACKs and increases the total throughput.
On the other hand, in the IEEE 802.11 protocol, the order in which the packets arrive is ensured in relation to the upper layer, and the received packets are presented to the upper layer only when the order of arrival is correct. Therefore, in a case where the Block ACK is used, the receiving side must have a buffer called a reorder buffer. FIG. 13 shows a system that uses a reorder buffer. Each of the wireless terminals STA1, STA2 has a reorder buffer 200 of limited size. The buffer size is known to both the transmitting terminal STA1 and the receiving terminal STA2 through negotiation between the terminals before the start of the consecutive transmission procedure that uses the Block ACK. As described above, a sequence number is assigned to each packet, as prescribed by the IEEE 802.11 protocol. In the example in FIG. 13, the packets with the sequence numbers 1 to 10 are transmitted from STA1 to STA2. When an error occurs during the consecutive transmission of the packets, the reorder buffer 200 of STA2 temporarily holds the packets with the sequence numbers that follow the packet for which the error occurred. Further, numbers are set in advance for a buffer window starting point (Win_Start) and a window ending point (Win_End). The packets with the sequence numbers in the range from the Win_Start number to the Win_End number can be held in the reorder buffer 200. In this case, Win_Start corresponds to the lowest sequence number among the packets that are not successfully received. The value of Win_End is calculated by adding the value of Win_Start and the number of packets that can be held in the reorder buffer 200 (the buffer size). In this example, the buffer size of the reorder buffer 200 is 8.
In the example in FIG. 13, when the packets were transmitted from STA1, the reception on the STA2 side failed for the packets with the sequence numbers 1, 3, and 7. The packets that were successfully received, with the sequence numbers 2, 4 to 6, and 8, are held in the reorder buffer 200 of STA2. Having received the Block ACK from STA2 after the consecutive transmission and having recognized the packet errors, STA1 retransmits the packets 1, 3, and 7 for which the errors occurred. Having received the retransmission of the packets, STA2 takes the packets that are held in the reorder buffer 200 and sends them to the upper layer in consecutive sequence number order, starting with the lowest sequence number.
In the example in FIG. 13, in the retransmission of the packets 1, 3, and 7, the packets 1 and 7 are successfully received. The reorder buffer 200 is holding the consecutive packets 1 and 2, so the packets 1 and 2 are sent to the upper layer. On the other hand, the reception of the packet 3 was not successful, so the packet 3 and the subsequent packets are not sent to the upper layer. Because the reception of the packet 3 was not successful, the value of Win_Start is set to 3, and the value of Win_End is set to 10. After the retransmission of the packets, STA1, having recognized the reception error for the packet 3 based on the Block ACK, retransmits the packet 3. In addition, based on the value of 10 for Win_End, STA1 recognizes that the reorder buffer 200 can hold up to ten packets, so along with the packet 3, STA1 consecutively transmits the packets 9 and 10. If the transmission of the packets 3, 9, and 10 is successful, packets with consecutive sequence numbers, from the packet 3 to the packet 10, are held in the reorder buffer 200, so STA2 sends the packets 3 to 10 to the upper layer. Therefore, according to the procedure shown in FIG. 13, the packets with the consecutive sequence numbers that are held in the reorder buffer 200 are sent to the upper layer, so it is possible to ensure the order in which the packets arrive at the upper layer.    [Patent document 1] Japanese Unexamined Patent Application Publication No. 2005-210618    [Patent document 2] Japanese Unexamined Patent Application Publication No. 2006-203266    [Patent document 3] Japanese Unexamined Patent Application Publication No. 2006-287522